﻿Public Class xtf_ABMconfig_acceso 
    Private obj_config_acceso_ As cls_config_acceso_

    Public Sub New(ByVal idtercero As Integer)
        InitializeComponent()
        lci_1.Control.Enabled = False : lci_2.Control.Enabled = False : lci_3.Control.Enabled = False : lci_4.Control.Enabled = False : lci_5.Control.Enabled = False : lci_6.Control.Enabled = False : lci_7.Control.Enabled = False
        obj_config_acceso_ = New cls_config_acceso_
        obj_config_acceso_.idtercero = idtercero
        Me.Text = "Accesos por Usuario"
        CargarGrupos()
        CargarAccesos()
    End Sub

    Private Sub CargarGrupos()
        Dim obj_grupo_ As New cls_grupo_
        obj_grupo_.CargarTodos()
        For Each item_grupo As cls_grupo_ In obj_grupo_.Items
            Dim Elemento As New CustomListItem
            Elemento.objeto = item_grupo
            Elemento.text = item_grupo.ToString
            liv_Grupos.Items.Add(Elemento)
        Next
    End Sub

    Private Sub CargarUsuarios(ByVal idgrupo As Integer)
        Dim obj_usuario_ As New cls_usuario_
        obj_usuario_.CargarXidgrupo(idgrupo)
        For Each item_usuario As cls_usuario_ In obj_usuario_.Items
            Dim Elemento As New CustomListItem
            Elemento.objeto = item_usuario
            Elemento.text = item_usuario.ToString
            liv_Usuarios.Items.Add(Elemento)
        Next
    End Sub

    Private Sub CargarAccesos()
        If obj_config_acceso_.CargarXidtercero(obj_config_acceso_.idtercero) Then
            uos_Cantidad.SelectedIndex = 1
            For Each item_config_acceso As cls_config_acceso_ In obj_config_acceso_.Items
                Dim Elemento As New CustomListItem
                Elemento.objeto = item_config_acceso.usuario
                Elemento.text = item_config_acceso.usuario.ToString
                liv_Accesos.Items.Add(Elemento)
            Next
        End If
    End Sub

    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        Me.DialogResult = Windows.Forms.DialogResult.Cancel
    End Sub

    Private Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        GuardarCambios()
        Me.DialogResult = Windows.Forms.DialogResult.OK
    End Sub

    Private Sub GuardarCambios()
        obj_config_acceso_.EliminarTodosXidtercero(obj_config_acceso_.idtercero)
        If uos_Cantidad.SelectedIndex = 1 Then 'Solo seleccionados
            For i As Integer = 0 To liv_Accesos.Items.Count - 1
                Dim item_config_acceso_ As New cls_config_acceso_
                item_config_acceso_.idtercero = obj_config_acceso_.idtercero
                item_config_acceso_.idusuario = CType(liv_Accesos.Items(i).objeto, cls_usuario_).idusuario
                item_config_acceso_.Nuevo()
            Next
        End If
    End Sub

    Private Sub btn_Agregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Agregar.Click
        For i As Integer = 0 To liv_Usuarios.SelectedItems.Count - 1
            Dim Elemento As CustomListItem = liv_Usuarios.SelectedItems(0)
            Dim flag As Boolean = False
            For Each customitem As CustomListItem In liv_Accesos.Items
                Dim usuario As cls_usuario_ = customitem.objeto
                If usuario.idusuario = CType(Elemento.objeto, cls_usuario_).idusuario Then
                    flag = True
                End If
            Next
            If flag = False Then
                liv_Usuarios.Items.Remove(Elemento)
                liv_Accesos.Items.Add(Elemento)
            End If
        Next
    End Sub

    Private Sub btn_Quitar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Quitar.Click
        For i As Integer = 0 To liv_Accesos.SelectedItems.Count - 1
            Dim Elemento As CustomListItem = liv_Accesos.SelectedItems(0)
            liv_Accesos.Items.Remove(Elemento)
            Dim flag As Boolean = False
            For Each customitem As CustomListItem In liv_Usuarios.Items
                Dim usuario As cls_usuario_ = customitem.objeto
                If usuario.idusuario = CType(Elemento.objeto, cls_usuario_).idusuario Then
                    flag = True
                End If
            Next
            If flag = False Then
                liv_Usuarios.Items.Add(Elemento)
            End If
        Next
    End Sub

    Private Sub btn_QuitarTodos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_QuitarTodos.Click
        For i As Integer = 0 To liv_Accesos.Items.Count - 1
            Dim Elemento As CustomListItem = liv_Accesos.Items(0)
            liv_Accesos.Items.Remove(Elemento)
            Dim flag As Boolean = False
            For Each customitem As CustomListItem In liv_Usuarios.Items
                Dim usuario As cls_usuario_ = customitem.objeto
                If usuario.idusuario = CType(Elemento.objeto, cls_usuario_).idusuario Then
                    flag = True
                End If
            Next
            If flag = False Then
                liv_Usuarios.Items.Add(Elemento)
            End If
        Next
    End Sub

    Private Sub btn_AgregarTodos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_AgregarTodos.Click
        For i As Integer = 0 To liv_Usuarios.Items.Count - 1
            Dim Elemento As CustomListItem = liv_Usuarios.Items(0)
            Dim flag As Boolean = False
            For Each customitem As CustomListItem In liv_Accesos.Items
                Dim usuario As cls_usuario_ = customitem.objeto
                If usuario.idusuario = CType(Elemento.objeto, cls_usuario_).idusuario Then
                    flag = True
                End If
            Next
            If flag = False Then
                liv_Usuarios.Items.Remove(Elemento)
                liv_Accesos.Items.Add(Elemento)
            End If
        Next
    End Sub

    Private Sub liv_Grupos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles liv_Grupos.SelectedIndexChanged
        liv_Usuarios.Items.Clear()
        CargarUsuarios(CType(CType(liv_Grupos.SelectedItems(0), CustomListItem).objeto, cls_grupo_).idgrupo)
    End Sub

    Private Sub uos_Cantidad_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles uos_Cantidad.SelectedIndexChanged
        If uos_Cantidad.SelectedIndex = 0 Then 'Todos
            lci_1.Control.Enabled = False : lci_2.Control.Enabled = False : lci_3.Control.Enabled = False : lci_4.Control.Enabled = False : lci_5.Control.Enabled = False : lci_6.Control.Enabled = False : lci_7.Control.Enabled = False
        Else
            lci_1.Control.Enabled = True : lci_2.Control.Enabled = True : lci_3.Control.Enabled = True : lci_4.Control.Enabled = True : lci_5.Control.Enabled = True : lci_6.Control.Enabled = True : lci_7.Control.Enabled = True
        End If
    End Sub
End Class